package com.jishuo.nontax.bfc.dao;

import com.jishuo.nontax.bean.vo.EticketNumVO;
import com.jishuo.nontax.bean.vo.NumAmtVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author :hanlipeng
 * @description :
 * @create :2022-12-22 14:07:00
 */
@Mapper
public interface EticketNumMapper {

    /**
     * 根据票号查询票据
     * @param billnum 票号
     * @return
     */
    EticketNumVO findEticketNumByBill(String billnum);

    /**
     * 发送消息时更新messageid
     * @param eticketNum 票据对象
     * @return
     */
    int updateMsgInfo(EticketNumVO eticketNum);

    /**
     * 新增一个空单据
     * @param eticketNum 票据对象
     * @return
     */
    int insertBlankBill(EticketNumVO eticketNum);

    /**
     * 更新单据缴费信息，流水、网点、缴款方式
     * @param eticketNum 单据对象
     * @return
     */
    int updateBankAffirm(EticketNumVO eticketNum);

    /**
     * 缴费后，更新缴费信息
     * @param eticketNum 单据
     * @return
     */
    int updateBillPay(EticketNumVO eticketNum);

    /**
     * 跟新单据信息
     * @param eticketNum 单据对象
     * @return
     */
    int saveSetEticketNum(EticketNumVO eticketNum);

    /**
     * 根据sn更新单据状态
     * @param messageid
     * @param billstate
     * @return
     */
    int updateEticketNumBillState(@Param("messageid") long messageid, @Param("billstate") int billstate);

    NumAmtVO selectEtickNumAmt(@Param("bankid")String bankid, @Param("paybankdt")String paybankdt);

      //  页面

    /** 分页查询 */
    List<EticketNumVO> listEticketNum(EticketNumVO eticketNumVO);

    /**
     * 根据ids和已缴费查询电子缴费单据
     * @param billids
     * @return
     */
    List<EticketNumVO> findEticketNumByIsbankaffirm(long[] billids);

    /** 冲销后，更改isbankaffirm=0 */
    void updateIsbankaffirm(Long billid);
}
